#!/usr/bin/env ruby

require 'net/http'
require 'json'

uri = URI('https://gitlab.com/api/v4/projects/20699/trigger/pipeline')
params = {
  "ref" => ENV["OMNIBUS_BRANCH"] || "master",
  "token" => ENV["BUILD_TRIGGER_TOKEN"],
  "variables[GITLAB_VERSION]" => ENV["CI_COMMIT_SHA"],
  "variables[ALTERNATIVE_SOURCES]" => true,
  "variables[ee]" => ENV["EE_PACKAGE"] || "false"
}

Dir.glob("*_VERSION").each do |version_file|
  params["variables[#{version_file}]"] = File.read(version_file).strip
end

res = Net::HTTP.post_form(uri, params)
pipeline_id = JSON.parse(res.body)['id']

unless pipeline_id.nil?
  puts "Triggered pipeline can be found at https://gitlab.com/gitlab-org/omnibus-gitlab/pipelines/#{pipeline_id}"
else
  puts "Trigger failed. The response from trigger is: "
  puts res.body
end
